package com.example.apidocserver.interfaces.facade;

import com.example.apidocserver.application.event.SpaceEvent;
import com.example.apidocserver.domain.space.entity.Space;
import com.example.apidocserver.infrastructure.aop.PermissionAnno;
import com.example.apidocserver.infrastructure.util.result.ResultData;
import com.example.apidocserver.infrastructure.util.result.ResultUtils;
import com.example.apidocserver.interfaces.vo.SpaceVo;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * 空间内管理接口
 *
 * @author xyqlg
 */
@RestController
@RequestMapping("space")
public class SpaceController {
    @Resource
    private SpaceEvent spaceEvent;

    /**
     * 查询用户工作空间
     *
     * @param writeFlag 是否编辑
     * @return 工作空间信息集合
     */
    @GetMapping("/getSpace")
    public ResultData getSpace(@RequestParam(name = "writeFlag", defaultValue = "false") Boolean writeFlag) {
        return ResultUtils.success(spaceEvent.getSpace(writeFlag));
    }

    /**
     * 增加工作空间
     *
     * @param space 工作空间信息
     * @return 消息工具
     */
    @PostMapping("/")
    @PermissionAnno
    public ResultData addSpace(@RequestBody Space space) {
        return ResultUtils.success(spaceEvent.addSpace(space));
    }

    @GetMapping("/getEnv/{spaceId}")
    public ResultData getEnv(@PathVariable("spaceId") Integer spaceId) {
        return ResultUtils.success(spaceEvent.getEnv(spaceId));
    }
}
